In many communications networks, multiple instances of a protocol may be running simultaneously, e.g., to support different groups of end users accessing the network, to provide different functions and services within the network, and the like. One example of such a protocol is the Spanning Tree Protocol (STP). The STP is an Open Systems Interconnection (OSI) layer-2 protocol that ensures a loop-free topology for any bridged Local Area Network (LAN). The STP creates a spanning tree within a mesh network of connected layer-2 bridges, and disables those links that are not part of the spanning tree, leaving a single active path between any two bridges.
In existing implementations of STP, the STP requires a complete view of all ports of each bridge of the network in order to make decisions when a new, possibly topology changing, event occurs. The STP communicates events using protocol messages referred to as Bridge Protocol Data Units (BPDUs). The STP further requires that each decision made by the STP be atomic, i.e., the STP must process each BPDU in order. In other words, each decision that the STP makes while processing one BPDU must be completed before the next BPDU is processed.
In existing networks using STP, the STP may attempt to distribute the STP across multiple network interfaces (NIs) of a system. The STP may attempt to distribute the STP across multiple NIs of a system by using a scheme in which there is a distribution capability between NIs of the system and, further, in which each of the NIs obtains a view of the rest of the system. Disadvantageously, however, such schemes cannot guarantee atomic order in processing of BDPUs being exchanged within the system and, therefore, undesirable situations typically occur.